import http from '@/utils/http'

/**
 * 上传CSV文件进行分析
 * @param {File} file 要上传的CSV文件
 * @returns {Promise<Blob>} 返回PDF文件的Blob
 */
export const uploadFileForAnalysis = (file) => {
	const formData = new FormData()
	formData.append('file', file)

	// 直接使用axios处理Blob响应
	return http.request({
		url: '/back/upload',
		method: 'post',
		data: formData,
		responseType: 'blob',
		headers: {
			'Content-Type': 'multipart/form-data',
		},
		timeout: 60000, // 60秒超时，文件分析可能需要较长时间
		isToken: false, // 外部API不需要token
	})
}

/**
 * 下载示例CSV文件
 * @param {string} filename 文件名，默认为 'example.csv'
 * @returns {Promise<Blob>} 返回文件Blob
 */
export const downloadExampleFile = (filename = 'example.csv') => {
	// 构建文件路径
	const fileUrl = new URL(
		`../../views/Product/AI4Data/${filename}`,
		import.meta.url
	).href

	return fetch(fileUrl).then((response) => {
		if (!response.ok) {
			throw new Error('文件不存在')
		}
		return response.blob()
	})
}

/**
 * 获取示例文件内容（用于预览）
 * @param {string} filename 文件名，默认为 'example.csv'
 * @returns {Promise<string>} 返回文件内容文本
 */
export const getExampleFileContent = (filename = 'example.csv') => {
	const fileUrl = new URL(
		`../../views/Product/AI4Data/${filename}`,
		import.meta.url
	).href

	return fetch(fileUrl).then((response) => {
		if (!response.ok) {
			throw new Error(`HTTP error! status: ${response.status}`)
		}
		return response.text()
	})
}
